#迭代器
"""
    迭代是访问集合的一种方式。
    迭代器是可以记住遍历位置的对象
    迭代器对象从元素的第一个位置开始访问，到所有的元素访问结束。
    迭代器只能向前 不能后退

"""
# 可跌倒对象

"""
    以直接可以用于for循环的数据类型有以下几种：
    一类是集合类型：如 list、tuple、dict、set、str
    一类是gennerator：（生成器）
    这些可直接用于for循环的对象统称为可迭代对象：Iterable
    
"""

# 判断是否可迭代化
from collections import Iterable,Iterator
print(isinstance([2,3,4],Iterable))
print(isinstance("abc",Iterable))





#iter()函数

"""
    生成器都是Iterator对象，但是list、dict、str虽然是Iterable,却不是Iterator.
    
    把list、dict、str等Iterable变成Iterator 可以用iter()
    
"""


print(isinstance([],Iterator))
print(isinstance("abc",Iterator))


print(isinstance(iter([]),Iterator))
print(isinstance(iter("abc"),Iterator))





